package com.training1.core.modules.dao;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.training1.core.common.dao.CrudDao;
import com.training1.core.common.dao.annotation.MyBatisDao;
import com.training1.core.entity.ContractAttachEntity;
import com.training1.core.entity.ContractBaseEntity;
import com.training1.core.entity.ContractCrudEntity;
import com.training1.core.entity.UnderCompanyEntity;
/**
 * 
 * @author yunlei
 * 
 */
@MyBatisDao
public interface ContractDao extends CrudDao<ContractBaseEntity>{
	
	//判断登录用户的权限
	Integer getUserRole(Map<String,Object> map);
	
	//应收合同(数量/总金额)
	Integer findYshtNum(Integer id);
	BigDecimal findYshtSum(Integer id);
	
	//-----------------------------------------
	//逾期合同(数量/总金额)
//	Integer findYqhtNum(Integer id);
//	BigDecimal findYqhtSum(Integer id);
//	//待一审合同(数量/总金额)
//	Integer findDyshtNum(Integer id);
//	BigDecimal findDyshtSum(Integer id);
//	//待二审合同(数量/总金额)
//	Integer findDeshtNum(Integer id);
//	BigDecimal findDeshtSum(Integer id);
//	//待放款合同(数量/总金额)
//	Integer findDfkhtNum(Integer id);
//	BigDecimal findDfkhtSum(Integer id);
	
	Integer findHtNum(Map<String,Object> map);
	BigDecimal findHtSum(Map<String,Object> map);
	
	List<UnderCompanyEntity> findCompanyCombox();
	
	//添加合同的基本信息
	Integer saveCustomer(ContractCrudEntity entity);//客户表
	Integer saveContract(ContractCrudEntity entity);//合同表
	void saveFujian(ContractAttachEntity entity);//附件表
	
	//根据合同id查询
	List<ContractCrudEntity> getContract(Integer id);
	
	//更新合同的信息
	void updateCustomer(ContractCrudEntity entity);//客户表
	void updateContract(ContractCrudEntity entity);//合同表
	void updateFujian(ContractAttachEntity entity);//附件表
	
	//删除附件
	void deletAllFujian(Integer id);
	
	/*void deletFileContract(Map<String,Object> map);*/
	
	
	//all
	List<ContractBaseEntity> searchContractList(Map<String,Object> map);
	
	Integer exist(Integer id);//延期
	
	void delContract(Integer id);//删除合同
}
